package org.comple.erp.pojo.procurement;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 
 * @TableName proinvoiceregister
 */
@Getter
@Setter
@EqualsAndHashCode
@ContentRowHeight(15)
@HeadRowHeight(20)
@ColumnWidth(25)
public class Proinvoiceregister implements Serializable {
    /**
     * 
     */
    @ExcelIgnore
    private String id;

    /**
     * 
     */
    @DateTimeFormat("yyyy年MM月dd日")
    @ColumnWidth(50)
    @ExcelProperty("单据日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date procurement_date;

    /**
     * 
     */
    @ExcelProperty("单据编号")
    private String procurement_code;

    @ExcelIgnore
    private String procurement_id;

    /**
     * 
     */
    @ExcelProperty("关联采购订单号")
    private String procurementOrder_code;

    /**
     * 
     */
    @ExcelProperty("供应商编码")
    private String supplier_code;

    /**
     * 
     */
    @ExcelProperty("供应商名称")
    private String supplier_name;

    /**
     * 
     */
    @ExcelProperty("源制单人")
    private String buyer;

    @ExcelIgnore
    private String buyer_id;


    /**
     * 
     */
    @ExcelProperty("登记人")
    private String register_man;

    @ExcelIgnore
    private String register_manId;

    /**
     * 
     */
    @DateTimeFormat("yyyy年MM月dd日")
    @ColumnWidth(50)
    @ExcelProperty("制单日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date created_date;

    /**
     * 
     */
    @ExcelProperty("数量")
    private Integer procurement_quantity;

    /**
     * 
     */
    @ExcelProperty("金额")
    private BigDecimal buy_amount;

    /**
     * 
     */
    @ExcelProperty("税额")
    private BigDecimal tax_amount;

    /**
     * 
     */
    @ExcelProperty("已付款")
    private BigDecimal pay_amount;

    /**
     * 
     */
    @ColumnWidth(120)
    @ExcelProperty("付款状态 0-未付款 1-部分付款 2-全部付款 3-未退款 4-部分退款 5-全部退款")
    private Integer pay_status;

    /**
     * 
     */
    @ExcelProperty("价税合计")
    private BigDecimal procurement_amount;

    /**
     * 
     */
    @DateTimeFormat("yyyy年MM月dd日")
    @ColumnWidth(50)
    @ExcelProperty("发票日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date invoice_date;

    /**
     * 
     */
    @ExcelProperty("本次发票总金额")
    private BigDecimal invoice_amount;

    /**
     * 
     */
    @ExcelProperty("发票号")
    private String invoice_num;

    /**
     * 
     */
    @ExcelProperty("已开票金额")
    private BigDecimal alreadyOpen_amount;

    /**
     * 
     */
    @ExcelProperty("未开票金额")
    private BigDecimal noOpen_amount;

    /**
     * 
     */
    @ExcelProperty("本次开票金额")
    private BigDecimal thisOpen_amount;

    /**
     * 
     */
    @ExcelProperty("备注")
    private String remark;

    /**
     * 
     */
    @ExcelIgnore
    private byte[] invoice_title;

    @ColumnWidth(50)
    @ExcelProperty("是否删除 0-未删除 1-已删除")
    private Integer isDelete;


    @ExcelProperty("公司编码")
    private String companyCode;

    private static final long serialVersionUID = 1L;

    /**
     * 
     */
    public String getId() {
        return id;
    }

    /**
     * 
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 
     */
    public Date getProcurement_date() {
        return procurement_date;
    }

    /**
     * 
     */
    public void setProcurement_date(Date procurement_date) {
        this.procurement_date = procurement_date;
    }

    public String getProcurement_id() {
        return procurement_id;
    }

    public void setProcurement_id(String procurement_id) {
        this.procurement_id = procurement_id;
    }

    /**
     * 
     */
    public String getProcurement_code() {
        return procurement_code;
    }

    /**
     * 
     */
    public void setProcurement_code(String procurement_code) {
        this.procurement_code = procurement_code;
    }

    /**
     * 
     */
    public String getProcurementOrder_code() {
        return procurementOrder_code;
    }

    /**
     * 
     */
    public void setProcurementOrder_code(String procurementOrder_code) {
        this.procurementOrder_code = procurementOrder_code;
    }

    public String getBuyer_id() {
        return buyer_id;
    }

    public void setBuyer_id(String buyer_id) {
        this.buyer_id = buyer_id;
    }

    public String getRegister_manId() {
        return register_manId;
    }

    public void setRegister_manId(String register_manId) {
        this.register_manId = register_manId;
    }

    /**
     * 
     */
    public String getSupplier_code() {
        return supplier_code;
    }

    /**
     * 
     */
    public void setSupplier_code(String supplier_code) {
        this.supplier_code = supplier_code;
    }

    /**
     * 
     */
    public String getSupplier_name() {
        return supplier_name;
    }

    public void setSupplier_name(String supplier_name) {
        this.supplier_name = supplier_name;
    }

    /**
     * 
     */
    public String getBuyer() {
        return buyer;
    }

    /**
     * 
     */
    public void setBuyer(String buyer) {
        this.buyer = buyer;
    }

    /**
     * 
     */
    public String getRegister_man() {
        return register_man;
    }

    /**
     * 
     */
    public void setRegister_man(String register_man) {
        this.register_man = register_man;
    }

    /**
     * 
     */
    public Date getCreated_date() {
        return created_date;
    }

    /**
     * 
     */
    public void setCreated_date(Date created_date) {
        this.created_date = created_date;
    }

    /**
     * 
     */
    public Integer getProcurement_quantity() {
        return procurement_quantity;
    }

    /**
     * 
     */
    public void setProcurement_quantity(Integer procurement_quantity) {
        this.procurement_quantity = procurement_quantity;
    }

    /**
     * 
     */
    public BigDecimal getBuy_amount() {
        return buy_amount;
    }

    /**
     * 
     */
    public void setBuy_amount(BigDecimal buy_amount) {
        this.buy_amount = buy_amount;
    }

    /**
     * 
     */
    public BigDecimal getTax_amount() {
        return tax_amount;
    }

    /**
     * 
     */
    public void setTax_amount(BigDecimal tax_amount) {
        this.tax_amount = tax_amount;
    }

    /**
     * 
     */
    public BigDecimal getPay_amount() {
        return pay_amount;
    }

    /**
     * 
     */
    public void setPay_amount(BigDecimal pay_amount) {
        this.pay_amount = pay_amount;
    }

    /**
     * 
     */
    public Integer getPay_status() {
        return pay_status;
    }

    /**
     * 
     */
    public void setPay_status(Integer pay_status) {
        this.pay_status = pay_status;
    }

    /**
     * 
     */
    public BigDecimal getProcurement_amount() {
        return procurement_amount;
    }

    /**
     * 
     */
    public void setProcurement_amount(BigDecimal procurement_amount) {
        this.procurement_amount = procurement_amount;
    }

    /**
     * 
     */
    public Date getInvoice_date() {
        return invoice_date;
    }

    /**
     * 
     */
    public void setInvoice_date(Date invoice_date) {
        this.invoice_date = invoice_date;
    }

    /**
     * 
     */
    public BigDecimal getInvoice_amount() {
        return invoice_amount;
    }

    /**
     * 
     */
    public void setInvoice_amount(BigDecimal invoice_amount) {
        this.invoice_amount = invoice_amount;
    }

    /**
     * 
     */
    public String getInvoice_num() {
        return invoice_num;
    }

    /**
     * 
     */
    public void setInvoice_num(String invoice_num) {
        this.invoice_num = invoice_num;
    }

    /**
     * 
     */
    public BigDecimal getAlreadyOpen_amount() {
        return alreadyOpen_amount;
    }

    /**
     * 
     */
    public void setAlreadyOpen_amount(BigDecimal alreadyOpen_amount) {
        this.alreadyOpen_amount = alreadyOpen_amount;
    }

    /**
     * 
     */
    public BigDecimal getNoOpen_amount() {
        return noOpen_amount;
    }

    /**
     * 
     */
    public void setNoOpen_amount(BigDecimal noOpen_amount) {
        this.noOpen_amount = noOpen_amount;
    }

    /**
     * 
     */
    public BigDecimal getThisOpen_amount() {
        return thisOpen_amount;
    }

    /**
     * 
     */
    public void setThisOpen_amount(BigDecimal thisOpen_amount) {
        this.thisOpen_amount = thisOpen_amount;
    }

    /**
     * 
     */
    public String getRemark() {
        return remark;
    }

    /**
     * 
     */
    public void setRemark(String remark) {
        this.remark = remark;
    }

    /**
     * 
     */
    public byte[] getInvoice_title() {
        return invoice_title;
    }

    /**
     * 
     */
    public void setInvoice_title(byte[] invoice_title) {
        this.invoice_title = invoice_title;
    }

    public Integer getIsDelete() {
        return isDelete;
    }

    public void setIsDelete(Integer isDelete) {
        this.isDelete = isDelete;
    }

    public String getCompanyCode() {
        return companyCode;
    }

    public void setCompanyCode(String companyCode) {
        this.companyCode = companyCode;
    }
}